// 构建 npm 包
import validate from 'wechat-validate'
Page({
  // 通过 behaviors 注入 validate 方法
  behaviors: [validate],
  // 定义表单数据的验证规则
  rules: {
    mobile: [{
        required: true,
        message: '请填写手机号码!'
      },
      {
        pattern: /^1[3-9]\d{9}$/,
        message: '请检查手机号码是否正确!'
      },
    ],
    code: [{
        required: true,
        message: '请填写短信验证码!'
      },
      {
        pattern: /^\d{6}$/,
        message: '请检查短信验证码是否正确!'
      }
    ]
  },
  data: {
    countDownVisible: false,
    mobile: '',
    code: ''
  },
  onLoad(query) {
    // console.log("query:", query);
    this.query = query
  },

  countDownChange(ev) {
    this.setData({
      // 倒计时组件
      timeData: ev.detail,
      // 是否显示倒计时组件
      countDownVisible: ev.detail.minutes === 1 || ev.detail.seconds > 0,
    })
  },
  async getSMSCode() {
    // 校验通过之后，才发送请求
    const {
      valid,
      message
    } = this.validate('mobile')
    console.log('val', valid);
    if (valid) {
      const res = await wx.http.get('/code', {
        mobile: this.data.mobile
      })
      // 发送请求之后，再显示倒计时组件
      this.setData({
        countDownVisible: true
      })
      console.log(res);
    } else {
      wx.utils.toast(message)
    }
  },
  // 登录表单提交
  async onSubmit() {
    const {
      mobile,
      code
    } = this.data
    // console.log('验证码', {
    //   mobile,
    //   code
    // });
    // 如果校验通过返回 true
    const isValidate = this.validate()

    if (isValidate) {
      const res = await wx.http.post('/login', {
        mobile,
        code
      })
      // console.log("res:", res);
      const app = getApp() // 获取 app.js 文件的属性
      // app.token = res.data.token
      app.setToken('token', res.data.token)
      app.setToken('refreshToken', res.data.refreshToken)
      // 页面回跳
      wx.redirectTo({
        url: this.query.redirectURL
      })
    }
  }
})